Specifying Reusable Components Using Contracts

نویسنده

  • Ian M. Holland
چکیده

Contracts were introduced by Helm et al. as a high level construct for explicitly specifying interactions among groups of objects. This paper describes further developments and application of the Contract construct. We show how Contracts can be used to represent classic algorithms as large grained reusable object oriented abstractions, how these algorithms can be customized through Contract reenement and how they are reused through Contract conformance. The example algorithm used throughout is the classic graph depth rst traversal algorithm. This algorithm is represented as a Contract which is then reened to specify algorithms which number connected regions of graphs and which check graphs for cycles. Changes to the Contract language are introduced and we discuss some new problems resulting from the simultaneous reuse of related contracts.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Specifying Reusable Components

Reusable software components need well-defined interfaces, rigorously and completely documented features, and a design amenable both to reuse and to formal verification; all these requirements call for expressive specifications. This paper outlines a rigorous foundation to model-based contracts, a methodology to equip classes with expressive contracts supporting the accurate design, implementat...

متن کامل

Component Composition Preserving Behavioural Contracts

This paper investigates the compositional properties of reusable software components defined with explicit dependencies and behavioural contracts expressing rely-guarantee specifications in the form of communication traces. In this setting, connection of components through their matching ports is indeed compositional and yields a new component or composite that respects its constituents’ contra...

متن کامل

The SEESCOA Composer Tool: Using Contracts for Component Composition and Run-Time Monitoring

In this paper, our approach for building embedded applications is presented. The approach is based on the composition of reusable components with the addition of a contract principle for modelling non-functional constraints. Non-functional constraints are an important aspect of embedded systems, and are therefore modelled separately in contracts. As such, the component view presented here diffe...

متن کامل

Looking for What Isn’t Officially There

C ommercial relationships and business contracts, which formally express the rights and obligations binding a client and a supplier, provide the inspiration for design by contract software development methodology. Software contracts take the form of routine preconditions (obligations on the caller), postconditions (benefits to the caller), and class invariants (consistency constraints), written...

متن کامل

Customizable, Reusable and Composable Architecture Contracts

One of the major advantages of adopting component-based software engineering is the ability for developers to reuse and assemble software entities to build complex software. Business (functional) component reuse and assembly has been dealt with by many researchers in the literature. However, the issue of reusing and assembling of (nonfunctional) documentation of software components has not been...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1992